#ifndef MYTEXTEDIT_H
#define MYTEXTEDIT_H

#include <QTextEdit>
#include <QWheelEvent>

class MyTextEdit : public QTextEdit
{
public:
    MyTextEdit(QWidget *parent);
    int ctrl_pressed = 0;       // 默认没有按下ctrl
protected:
    // 滚轮事件
    void wheelEvent(QWheelEvent *event) override;
    // 按下Qt::Key_Control
    void keyPressEvent(QKeyEvent *event) override;
    // 松开Qt::Key_Control
    void keyReleaseEvent(QKeyEvent *event) override;
};

#endif // MYTEXTEDIT_H

/*
QWidget (基类)
│
├── QTextEdit (标准文本编辑控件)                //  MyTextEdit::MyTextEdit(QWidget *parent):QTextEdit(parent) 子类调用构造函数的时候，父类要先调用构造函数，之前的基础
│   │
│   └── MyTextEdit (自定义文本编辑控件)          // class MyTextEdit : public QTextEdit  理解：我自定义的TextEdit需要继承了QTextEdit，才能使用原来的功能的同时，新增加功能
│
└── MyWidget (主窗口)
    │
    └── Ui::MyWidget (UI 界面)
        │
        └── MyTextEdit (实际使用的控件)        // 之前ui的控件是QTextEdit，现在要变成你的，就要先继承原来的QTextEdit，再提升为MyTextEdit，从而变成ui->myTextEdit
*/
